1. Field
The present embodiments relate to techniques for managing virtual disks. More specifically, the present embodiments relate to a method and system for providing virtual disks using transactional and differential snapshots.
2. Related Art
Virtual machines executing on computer systems may be managed from virtual disks in the computer systems. For example, a virtual machine executing a guest operating system on a personal computer may be loaded into memory in the personal computer from a virtual disk in the personal computer. In addition, changes made to the virtual machine and/or snapshots taken of the virtual machine may be stored in the virtual disk so that subsequent execution of the virtual machine may utilize the changes and/or snapshots.
However, current implementations of virtual disks may be inefficient or insecure for a number of reasons. In particular, mappings to data within virtual disks are typically stored in page tables. Such usage of page tables may limit the virtual disks to fixed block sizes and full snapshots of the virtual disks. Furthermore, snapshots of the virtual disks may become increasingly slow as more page tables are used to track changes within the virtual disks.
Virtual disk implementations may also include a number of security vulnerabilities. For example, a virtual disk may be vulnerable to attacks that move and/or modify data within the virtual disk, even if the virtual disk is encrypted. Integrity may also be compromised if the operation of the virtual disk is interrupted. For example, a crash may result in a significant loss of data in the virtual disk, particularly if the virtual disk has not been backed up and/or checkpointed recently.
Hence, what is needed is a mechanism for enhancing the reliability, efficiency, and security of virtual disks.
In the figures, like reference numerals refer to the same figure elements.